package com.ruoyi.management.mock.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.management.basics.vo.GetBannerListVo;
import com.ruoyi.management.mock.domain.TNotice;
import com.ruoyi.management.mock.ro.AddNoticeParam;
import com.ruoyi.management.mock.ro.GetNoticeByIdParam;
import com.ruoyi.management.mock.ro.GetNoticeListParam;
import com.ruoyi.management.mock.ro.UpdateNoticeParam;
import com.ruoyi.management.mock.vo.GetNoticeByIdVo;
import com.ruoyi.management.mock.vo.GetNoticeListVo;
import com.ruoyi.passenger.notice.ro.GetDriverHnoticeListParam;
import com.ruoyi.passenger.notice.ro.GetHnoticeListParam;
import com.ruoyi.passenger.notice.vo.GetNoticeVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;

import java.util.List;

/**
 * 公告Mapper接口
 * 
 * @author ruoyi
 * @date 2021-11-29
 */
public interface TNoticeMapper {
    /**
     * 根据条件 查询公告list
     * @param param
     * @return
     */
    List<GetNoticeListVo> selectTNoticeList(@Param("param") GetNoticeListParam param);

    /**
     * 根据公告Id 查询公告信息
     * @param param
     * @return
     */
    GetNoticeByIdVo selectTNoticeById(@Param("param") GetNoticeByIdParam param);
    /**
     * 新增公告
     * @return
     */
    int addTNotice(TNotice tNotice);

    int addNotice(AddNoticeParam param);
    /**
     * 根据公告Id获取公告信息
     * @return
     */
    TNotice getNoticeById(@Param("id") Long id);

    /**
     * 根据公告Id编辑公告信息
     * @return
     */
    int updateNoticeById(TNotice tNotice);

    int updateNotice(UpdateNoticeParam tNotice);

    int updateStatus(TNotice tNotice);

    /**
     * banner查询 -驾驶员端
     * @return
     */
    List<GetBannerListVo> getBannerList();

    /**
     * banner查询 -乘客端端
     * @return
     */
    List<GetBannerListVo> selectBannerList();

    /**
     * 公告查询 带分页 -驾驶员端
     * @return
     */
    List<GetNoticeByIdVo> getNoticeList(GetDriverHnoticeListParam param);

    /**
     * 公告查询 带分页 -乘客端端
     * @return
     */
    List<GetNoticeByIdVo> selectNoticeList();
    /**
     * 公告详情
     * @return
     */
    GetNoticeVO selectNoticeById(@Param("noticeId") Long noticeId);

    Long selectTop();

    int downNotice();
}
